function isTongHuaShun(cards) {
    //? 同花 + 顺
    //? 存放同花
    let tong = [[],[],[],[]]
    //? 花色相同的牌面放一起
    for (let i = 0; i < cards.length; i ++) {
        tong[suitToIndex(cards[i][1])].push(valueToIndex(cards[i][0]))
    }
    //? 对于每种花色判断是否顺
    for (let i = 0; i < tong.length; i++) {
        let item = tong[i]
        item.sort((a, b) => a - b)
        //? 这个花色不是顺子
        if (item.length < 5) continue
        for (let j = 1; j <= item.length - 5; j++) {
            if (item[j] + 4 !== item[j + 4]) return false
        }
    }
    return true
}
//? 测试代码
console.log(isTongHuaShun(['As', '2s', '3s', '4s', '5s', '6s', '7s'])); // true
console.log(isTongHuaShun(['As', '2s', '3s', '4s', '5s', '6s', '8s'])); // false
//? 将牌面值转换为数字索引
function valueToIndex(value) {
    switch (value) {
        case 'A':
            return 1;
        case 'T':
            return 10;
        case 'J':
            return 11;
        case 'Q':
            return 12;
        case 'K':
            return 13;
        default:
            return parseInt(value);
    }
}
//? 将花色转换为数字索引
function suitToIndex(suit) {
    switch (suit) {
        case 's':
            return 0;
        case 'h':
            return 1;
        case 'd':
            return 2;
        case 'c':
            return 3;
    }
}

